/*******************************************************************************
    Universidad del Valle de Guatemala
    Algoritmos y estructuras de datos
    Karen Tojin   08091
    Fecha: 30 de Julio de 2009
    Descricion: Programa que simula un banco, con el uso de colas
***************************************************************************** */

/**
 *
 * @author karenAndy
 */
public class ColasArray<Type> extends AbstractImpBanco{

    private Object[] elementos; //Instancia del arreglo

    public ColasArray(){
    // Genera el arreglo con 10 posiciones
        elementos = new Object[max];
        personas = 0;
        disponibles = max;
    }

    @Override
    public void Push(Object newPerson){
    // post: agrega un elemento al final de la cola
        if(this.Full())
            System.out.println("El parqueo esto lleno, espere a que salga algun automovil");
        else{
            elementos[personas] = newPerson;
            personas++;
            disponibles--;
        }
    }

    @Override
    public Object Pop(){
    // pre: la lista no está vacía
    // post: quita y devuelve el último elemento que ingresó a la lista
        if(this.Empty()){
            System.out.println("El parqueo esta vacio");
            return null;
        }
        else{
            personas++;
            disponibles--;
            return elementos[personas];
        }
    }

    @Override
    public Object Peek(){
    // pre: el arreglo no está vacío
    // post: devuelve el último valor ingresado al arreglo
        if(this.Empty()){
            System.out.println("El parqueo esta vacio");
            return null;
        }
        else{
            return elementos[personas-1];
        }
    }
}
